import { createRouter, createWebHistory } from 'vue-router'

function isMobile() {
  // 用于判断当前设备是否是移动端的正则表达式
  const regexp = /(phone|pad|pod|iPhone|iPod|ios|iPad|Android|Mobile|BlackBerry|IEMobile|MQQBrowser|JUC|Fennec|wOSBrowser|BrowserNG|WebOS|Symbian|Windows Phone)/;
  // 用浏览器提供的支持获得用户代理
  const ua = navigator.userAgent;
  // 用正则判断当前设备是否是移动端
  const result = ua.match( regexp );
  // 将 result 转换为 true 、false 后再返回
  return Boolean(result);
}

const routes = [
  {
    path: '/',
    name: 'root',
    component: () => import('@/views/Root.vue'),
    // 路由独享守卫
    beforeEnter: () => {
      console.log('根据用户设备打开不同的页面');
      if( isMobile() ) {
        return '/mobile'; // 返回移动端对应的路径
      }
      return '/pc'; // 若非移动设备则去往PC端首页
    }
  },
  {
    path: '/pc',
    name: 'pcRoot',
    component: () => import('@/views/pc/Home.vue'),
    beforeEnter: () => {
      // 若当前设备是移动端
      if( isMobile() ) {
        return '/mobile'; // 则返回移动端对应的路径
      }
    },
    //定义嵌套路由（即子路由）
    children: [
      {
        path: 'main',
        name: 'pcMain',
        alias: '',
        component: () => import('@/views/pc/Main.vue'),
      },
      {
        path: 'login',
        name: 'pcLogin',
        component: () => import('@/views/pc/Login.vue'),
      },
      {
        path: 'mine',
        name: 'pcMine',
        component: () => import('@/views/pc/Mine.vue'),
      }
    ]
  },
  {
    path: '/mobile',
    name: 'mobileRoot',
    component: () => import('@/views/mobile/Home.vue'),
    // 路由独享守卫
    beforeEnter: () => {
      // 若当前设备不是移动端
      if( !isMobile() ) {
        return '/pc'; // 则去往PC端首页
      }
    }
  }
]


const router = createRouter({
  history: createWebHistory(import.meta.env.BASE_URL),
  routes
})

export default router
